package com.aidong.stadium.dao;

import java.util.List;
import java.util.Map;

import com.aidong.activity.entity.Member;
import com.aidong.stadium.entity.MstConclusionabout;
import com.aidong.stadium.entity.MstCourseSchedule;
import com.aidong.stadium.entity.MstCourseType;
import com.aidong.stadium.entity.MstSchedule;
import com.aidong.stadium.entity.StoreCourse;

/**
 * 团操课程
 *
 * @author java
 * @version 1.0 2015.6.17
 */
public interface MstScheduleDao {

    /**
     * 查找门店下的团操课程
     */
    public List<StoreCourse> getAboutSchedule(Map<String, Object> map);

    /**
     * 課程預約人數
     */
    public int getSchedulePerson(int courseAutoId);

    /**
     * 团操课程介绍
     */
    public MstConclusionabout getScheduleDuce(int autoId);

    /**
     * @param map 团操可预约人数
     * @return
     */
    public Map<String, Object> getAppointIfFull(Map<String, Object> map);

    /**
     * 团操已预约人数
     */
    public int getAppointOfPerson(Map<String, Object> map);

    /**
     * 判断该手机号码是否已经预约
     */
    public List<Map<String, Object>> getIfAppoint(Map<String, Object> map);

    /**
     * 判断该手机号码是否在同一时间段预约了其它课程
     */
    public List<Map<String, Object>> getOtherAppoint(Map<String, Object> map);

    /**
     * 添加团操课程预约
     *
     * @param schedule
     */
    public void addScheduleDuce(MstSchedule schedule);

    /**
     * 修改预约状态
     *
     * @param map
     */
    public void editScheduleStatus(Map<String, Object> map);

    /**
     * 短信预约提醒信息
     */
    public Map<String, Object> getCourseAppointRemind(int autoId);

    /**
     * 团操课程差价
     *
     * @return
     */
    public int getMststorePriceDiffer(int orderId);

    /**
     * 团操课程上课列表
     */
    public List<MstCourseSchedule> getScheduleTimelist(Map<String, Object> map);

    /**
     * 团操课程类别
     *
     * @return
     */
    public List<MstCourseType> getCourseType(Map<String, Object> map);

    /**
     * 可提前预约天数
     *
     * @param autoId
     * @return
     */
    public Map<String, Object> getCallableBondDay(int autoId);

    /**
     * 课程详情已报名人数
     *
     * @param map
     * @return
     */
    public List<Map<String, Object>> getCourseAboutDetail(Map<String, Object> map);

    /**
     * 课程报名列表
     *
     * @param map
     * @return
     */
    public List<Member> getAlreadySignedCourse(Map<String, Object> map);

    /**
     * 支付信息
     *
     * @param autoId
     * @return
     */
    public String getPayInfo(int autoId);

    /**
     * 更新 version值
     *
     * @param map
     * @return
     */
    public int editScheduleVersion(Map<String, Object> map);

    /**
     * 获取课程autoID（根据预约号）
     */
    public int getScheduleAutoId(int subscribeId);

    public void cutScheduleVersion(int autoId);

    public int getCourseAboutCount(Map<String, Object> map);

    /**
     * 根据课程时间ID和爱动号查看该用户是否已购买该课程
     *
     * @param map
     * @return
     */
    public Map<String, Object> getConclusByIdongId(Map<String, Object> map);

    /*
     * 获取周几
     */
    public Map<String, Object> getScheduleWeek(Map<String, Object> map);

    /**
     * \
     * 根据课程时间ID获取课程信息
     *
     * @param map
     * @return
     */
    public MstSchedule getSubscribeDetail(Map<String, Object> map);

    /**
     * 根据教练爱动号查询出该教练获取的票数
     *
     * @param map
     * @return
     */
    public Map<String, Object> getVoteByCaochId(Map<String, Object> map);

    /**
     * 获取课程价格
     *
     * @param autoId
     * @return
     */
    public Map<String, Object> getSubscribePrice(int autoId);
}
